The present invention relates to the execution of workloads in a virtualized computing environment.
Heavily virtualized computing environments, for example cloud computing environments, are designed to realize cost savings by maximizing the number of workloads (e.g., programs) that are run per unit of hardware. This improves utilization rates of the hardware and energy efficiency by reducing, if not eliminating, idle time on hardware resources. Moreover, the total number of hardware resources deployed to handle the workloads is less than the number which would otherwise be deployed without the use of virtualization.
Workloads often times are written in Java™. Java™ is a general-purpose object-oriented computer programming language specifically designed to have as few implementation dependencies as possible. This allows application developers to write applications that can be run on any Java Virtual Machine (JVM), regardless of the computer architecture on which the applications are run. In this regard, a JVM provides an abstraction layer between the actual hardware and Java™ applications, imitating dedicated hardware. More particularly, a JVM interprets compiled Java™ binary code, called bytecode, for a computer's processor so that the processor can execute the bytecode, even though the bytecode is not specifically configured for the hardware on which it is executed. Thus, Java™ applications are portable, meaning that they can be executed on any type of computer architecture on which a JVM is executing.